home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / CPP / WFC010.ZIP / INCLUDE / CRAS.HPP < prev    next >
C/C++ Source or Header  |  1995-12-07  |  8KB  |  243 lines

  1. #ifndef REMOTE_ACCESS_SERVICE_CLASS_HEADER
  2.  
  3. /*
  4. ** Author: Samuel R. Blackburn
  5. ** CI$: 76300,326
  6. ** Internet: sammy@sed.csc.com
  7. **
  8. ** You can use it any way you like as long as you don't try to sell it.
  9. **
  10. ** Any attempt to sell WFC in source code form must have the permission
  11. ** of the original author. You can produce commercial executables with
  12. ** WFC but you can't sell WFC.
  13. **
  14. ** Copyright, 1995, Samuel R. Blackburn
  15. **
  16. ** $Workfile: $
  17. ** $Revision: $
  18. ** $Modtime: $
  19. */
  20.  
  21. #define REMOTE_ACCESS_SERVICE_CLASS_HEADER
  22.  
  23. #pragma warning ( disable : 4097 )
  24.  
  25. /*
  26. ** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
  27. */
  28.  
  29. typedef RASAMB _rasamb;
  30.  
  31. class CRemoteAccessServiceAuthenticationMessageBlock : public _rasamb
  32. {
  33.    private:
  34.  
  35.       void m_Initialize( void );
  36.  
  37.    public:
  38.  
  39.       CRemoteAccessServiceAuthenticationMessageBlock();
  40.       CRemoteAccessServiceAuthenticationMessageBlock( const RASAMB *source );
  41.       CRemoteAccessServiceAuthenticationMessageBlock( const CRemoteAccessServiceAuthenticationMessageBlock& source );
  42.  
  43.       /*
  44.       ** Destructor should be virtual according to MSJ article in Sept 1992
  45.       ** "Do More with Less Code:..."
  46.       */
  47.  
  48.       virtual ~CRemoteAccessServiceAuthenticationMessageBlock();
  49.  
  50.       void  Copy( const RASAMB *source );
  51.       void  Copy( const CRemoteAccessServiceAuthenticationMessageBlock& source );
  52.       BYTE  GetLana( void ) const;
  53.       DWORD GetErrorCode( void ) const;
  54.       void  GetErrorString( CString& return_string ) const;
  55. };
  56.  
  57. /*
  58. ** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
  59. */
  60.  
  61. typedef RASPPPNBF _raspppnbf;
  62.  
  63. class CRemoteAccessServiceNetBEUIFramer : public _raspppnbf
  64. {
  65.    private:
  66.  
  67.       void m_Initialize( void );
  68.  
  69.    public:
  70.  
  71.       CRemoteAccessServiceNetBEUIFramer();
  72.       CRemoteAccessServiceNetBEUIFramer( const RASPPPNBF *source );
  73.       CRemoteAccessServiceNetBEUIFramer( const CRemoteAccessServiceNetBEUIFramer& source );
  74.  
  75.       /*
  76.       ** Destructor should be virtual according to MSJ article in Sept 1992
  77.       ** "Do More with Less Code:..."
  78.       */
  79.  
  80.       virtual ~CRemoteAccessServiceNetBEUIFramer();
  81.  
  82.       void  Copy( const RASPPPNBF* source );
  83.       void  Copy( const CRemoteAccessServiceNetBEUIFramer& source );
  84.       BYTE  GetLana( void ) const;
  85.       DWORD GetErrorCode( void ) const;
  86.       DWORD GetNetBiosErrorCode( void ) const;
  87.       void  GetErrorString( CString& return_string ) const;
  88.       void  GetWorkstationName( CString& return_string ) const;
  89. };
  90.  
  91. /*
  92. ** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
  93. */
  94.  
  95. typedef RASPPPIPX _raspppipx;
  96.  
  97. class CRemoteAccessServiceInternetworkPacketExchange : public _raspppipx
  98. {
  99.    private:
  100.  
  101.       void m_Initialize( void );
  102.  
  103.    public:
  104.  
  105.       CRemoteAccessServiceInternetworkPacketExchange();
  106.       CRemoteAccessServiceInternetworkPacketExchange( const RASPPPIPX * source );
  107.       CRemoteAccessServiceInternetworkPacketExchange( const CRemoteAccessServiceInternetworkPacketExchange& source );
  108.  
  109.       /*
  110.       ** Destructor should be virtual according to MSJ article in Sept 1992
  111.       ** "Do More with Less Code:..."
  112.       */
  113.  
  114.       virtual ~CRemoteAccessServiceInternetworkPacketExchange();
  115.  
  116.       void   Copy( const RASPPPIPX * source );
  117.       void   Copy( const CRemoteAccessServiceInternetworkPacketExchange& source );
  118.       DWORD  GetErrorCode( void ) const;
  119.       void   GetIPXAddress( CString& return_string ) const;
  120. };
  121.  
  122. /*
  123. ** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
  124. */
  125.  
  126. typedef RASPPPIP _raspppip;
  127.  
  128. class CRemoteAccessServiceInternetProtocol : public _raspppip
  129. {
  130.    private:
  131.  
  132.       void m_Initialize( void );
  133.  
  134.    public:
  135.  
  136.       CRemoteAccessServiceInternetProtocol();
  137.       CRemoteAccessServiceInternetProtocol( const RASPPPIP * source );
  138.       CRemoteAccessServiceInternetProtocol( const CRemoteAccessServiceInternetProtocol& source );
  139.  
  140.       /*
  141.       ** Destructor should be virtual according to MSJ article in Sept 1992
  142.       ** "Do More with Less Code:..."
  143.       */
  144.  
  145.       virtual ~CRemoteAccessServiceInternetProtocol();
  146.  
  147.       void   Copy( const RASPPPIP * source );
  148.       void   Copy( const CRemoteAccessServiceInternetProtocol& source );
  149.       DWORD  GetErrorCode( void ) const;
  150.       void   GetIPAddress( CString& return_string ) const;
  151.  
  152. #if ! defined( WINNT35COMPATIBLE )
  153.  
  154.       void   GetServerIPAddress( CString& return_string ) const;
  155.  
  156. #endif // WINNT35COMPATIBLE
  157. };
  158.  
  159. #pragma warning ( default : 4097 )
  160.  
  161. class CRemoteAccessService : public CObject
  162. {
  163.    private:
  164.  
  165.       void m_Initialize( void );
  166.       void m_GetConnectionsIntoMemory( LPRASCONN& return_value, DWORD& number_of_entries );
  167.  
  168.    protected:
  169.  
  170.       BOOL m_AutomaticallyClose;
  171.  
  172.       LONG m_ErrorCode;
  173.  
  174.       HRASCONN m_ConnectionHandle;
  175.  
  176.       RASCONNSTATUS m_ConnectionStatus;
  177.  
  178.       LPVOID m_ConnectionCallbackFunctionPointer;
  179.  
  180.       RASDIALEXTENSIONS m_DialExtensions;
  181.  
  182.    public:
  183.  
  184.       enum Protocols
  185.       {
  186.          protocolAuthenticationMessageBlock = RASP_Amb,
  187.          protocolNetBEUIFramer              = RASP_PppNbf,
  188.          protocolInternetworkPacketExchange = RASP_PppIpx,
  189.          protocolInternetProtocol           = RASP_PppIp
  190.       };
  191.  
  192.       enum DialOptions
  193.       {
  194.          dialUsePrefixAndSuffix        = RDEOPT_UsePrefixSuffix,
  195.          dialAcceptPausedStates        = RDEOPT_PausedStates,
  196.          dialIgnoreModemSpeaker        = RDEOPT_IgnoreModemSpeaker,
  197.          dialSetModemSpeaker           = RDEOPT_SetModemSpeaker,
  198.          dialIgnoreSoftwareCompression = RDEOPT_IgnoreSoftwareCompression,
  199.          dialSetSoftwareCompression    = RDEOPT_SetSoftwareCompression
  200.       };
  201.  
  202.       CRemoteAccessService();
  203.       CRemoteAccessService( DWORD input_buffer_size );
  204.       CRemoteAccessService( DWORD input_buffer_size, DWORD output_buffer_size );
  205.  
  206.       /*
  207.       ** Destructor should be virtual according to MSJ article in Sept 1992
  208.       ** "Do More with Less Code:..."
  209.       */
  210.  
  211.       virtual ~CRemoteAccessService();
  212.  
  213.       /*
  214.       ** The Win32 API
  215.       */
  216.  
  217.       virtual BOOL     Dial( LPCTSTR who_to_call ); // RasDial
  218.       virtual HRASCONN GetConnection( LPCTSTR name_of_connection );
  219.       virtual BOOL     GetConnections( CStringArray& connections ); // RasEnumConnections
  220.       virtual BOOL     GetConnectionStatus( void ); // RasGetConnectStatus
  221.       virtual BOOL     GetErrorCode( void ) const;
  222.       virtual BOOL     GetErrorString( CString& error_string ); // RasGetErrorString
  223.       virtual BOOL     GetPhoneBookEntries( CStringArray& phone_book_entries );
  224.       virtual BOOL     GetProtocolInformation( CRemoteAccessServiceAuthenticationMessageBlock& data_to_get );
  225.       virtual BOOL     GetProtocolInformation( CRemoteAccessServiceNetBEUIFramer& data_to_get );
  226.       virtual BOOL     GetProtocolInformation( CRemoteAccessServiceInternetworkPacketExchange& data_to_get );
  227.       virtual BOOL     GetProtocolInformation( CRemoteAccessServiceInternetProtocol& data_to_get );
  228.       virtual BOOL     HangUp( LPCTSTR name_of_connection = NULL );
  229.       virtual BOOL     IsConnected( void );
  230.       virtual BOOL     SetAutomaticallyClose( BOOL auto_close ); // Returns replaces setting
  231.       virtual LPVOID   SetConnectionCallback( LPVOID RasDialFunc1_function_pointer );
  232.       virtual DWORD    SetDialOptions( DWORD dial_options );
  233.  
  234.       /*
  235.       ** API's to make life a little easier 
  236.       */
  237.  
  238.       virtual BOOL Open( LPCTSTR who_to_call ); // Dial()
  239.       virtual BOOL Close( LPCTSTR name_of_connection = NULL ); // HangUp();
  240. };
  241.  
  242. #endif // REMOTE_ACCESS_SERVICE_CLASS_HEADER
  243.